#include <celero/Celero.h>

CELERO_MAIN

int fibon(int i)
{
  if (i < 2)
  {
    return 1;
  }
  return fibon(i - 2) + fibon(i - 3);
}

BASELINE(Fibon1, Baseline, 30, 1000)
{
  celero::DoNotOptimizeAway(fibon(1));
}

BENCHMARK(Fibon1, Complex1, 30, 1000000)
{
  celero::DoNotOptimizeAway(fibon(10));
}

BASELINE(Fibon10, Baseline, 30, 1000)
{
  celero::DoNotOptimizeAway(fibon(1));
}

BENCHMARK(Fibon10, Complex1, 30, 1000000)
{
  celero::DoNotOptimizeAway(fibon(10));
}
